This invention relates to data communication systems, and more particularly, to a dynamic mechanism for distributing time slots assigned to expansion and high-speed ports of a communication switch.
A multiport communication switch may be provided in a data communication network to enable data communication between multiple network stations connected to various ports of the switch. To support cascade operations of multiple communication switches, each of them may contain an expansion port that provides data transferring between the switches. A logical connection may be created between receive ports and transmit ports of the switch to forward received frames to appropriate destinations. Based on frame headers, a frame forwarding arrangement selectively transfers received frames to a destination station.
All receive ports including the expansion port should be assigned with a time slot, during which data associated with frames received from the ports are transferred to logic circuitry that determines a destination station. To increase the efficiency of the bandwidth utilization it would be convenient to dynamically distribute time slots assigned to the expansion port and a high-speed receive port, such as a gigabit port for receiving data from a gigabit physical layer device, depending on relative data traffic at the ports.
The invention provides a novel method of data processing in a multiport data switching system having a decision making engine for controlling data forwarding between receive ports and at least one transmit port. The receive ports include an expansion port for receiving data packets from another switching system, and a high-speed port for receiving data packets at a rate higher than data rates at regular receive ports. In accordance with the method of the present invention, data blocks representing received data packets are placed in a plurality of data queues corresponding to the plurality of the receive ports. The data queues are transferred in successive time slots to logic circuitry for determining at least one transmit port. The time slots assigned to each of the plurality of receive ports includes expansion port time slots assigned to the expansion port and high-speed time slots assigned to the high-speed port. The expansion and high-speed time slots are dynamically distributed between the expansion and high-speed ports in accordance with relative data traffic at the ports.
In a preferred embodiment of the invention, requests for expansion time slots and high-speed time slots in each cycle of data queue transferring are counted. Non-requested high-speed port time slots may be allocated to the expansion port, if the number of the high-speed port requests is less than the number of the high-speed time slots. Similarly, non-requested expansion port time slots may be allocated to the high-speed port, if the number of the expansion port requests is less than the number of the expansion port time slots.
In accordance with the present invention, the decision making engine includes a plurality of queuing devices corresponding to the plurality of the receive ports for queuing data blocks representing the data packets received by the corresponding receive ports. To identify at least one selected transmit port for each data packet, logic circuitry receives the data blocks from the plurality of queuing devices in successive time slots assigned to each of the plurality of receive ports. A scheduler interacts with the plurality of queuing devices for dynamically distributing time slots assigned to the expansion and high-speed ports between these ports in accordance with relative data traffic at the ports.
Various objects and features of the present invention will become more readily apparent to those skilled in the art from the following description of a specific embodiment thereof, especially when taken in conjunction with the accompanying drawings.